新しくなったSlackワークフローで投稿されるメッセージの json フォーマットを確認してみる
アノテーション インフラチーム所属の髙橋隆太です。
Slack の API conversations.history の結果 フォーマットが レガシーワークフローから新しいワークフローにコンバートされてフォーマットが変わっていました。
今回の変更点
最近作成したものは「ワークフロー」過去作成したものは「レガシーワークフロー」と表示されます。
レガシーワークフローは自動的に新しいワークフローの形式にコンバートされる予定となります。 そのため、レガシーワークフローの形式で conversations.history の戻り値を取得する運用をしていた 場合は新しいワークフローのフォーマットに対応させる必要があります。
詳しい変更点は以下をご参照ください。
フォーマット内容
以下 json を記載します(idなどは架空の値)
※安否確認を例にしています。
レガシーワークフローの フォーマット
{
"messages": [
{
"type": "message",
"subtype": "bot_message",
"text": "さんが*安否確認入力*を送信しました *被災しましたか? * 被災していない *業務は可能ですか? * 業務できる *コメント ※「出張していて被災した」「自身は被災していないが家族が被災している」など、補足情報があればコメント欄に記載をお願いします * _記入なし_ ",
"ts": "1687483151.589599",
"username": "安否確認報告",
"bot_id": "BXXXXXXXXXX",
"app_id": "AXXXXXXXXXX",
"blocks": [
{
"type": "section",
"block_id": "AAAAA",
"text": {
"type": "mrkdwn",
"text": "さんが*安否確認入力*を送信しました",
"verbatim": false
}
},
{
"type": "section",
"block_id": "BBBBB",
"text": {
"type": "mrkdwn",
"text": "*被災しましたか? *\n被災していない\n\n",
"verbatim": false
}
},
{
"type": "section",
"block_id": "CCCCC",
"text": {
"type": "mrkdwn",
"text": "*業務は可能ですか? *\n業務できる\n\n",
"verbatim": false
}
},
{
"type": "section",
"block_id": "DDDDD",
"text": {
"type": "mrkdwn",
"text": "*コメント ※「出張していて被災した」「自身は被災していないが家族が被災している」など、補足情報があればコメント欄に記載をお願いします *\n_記入なし_\n\n",
"verbatim": false
}
},
{
"type": "divider",
"block_id": "EEEEE"
}
]
}
]
}
新しいワークフロー (レガシーワークフローがコンバートされた)新フォーマット
{
"messages": [
{
"type": "message",
"subtype": "bot_message",
"text": "*安否確認入力* submission from \n\n*被災しましたか?*\n被災していない\n\n*業務は可能ですか?*\n業務できる\n\n*コメント ※「出張していて被災した」「自身は被災していないが家族が被災している」など、補足情報があればコメント欄に記載をお願いします*\nこれは動作確認のテストです\n\n",
"ts": "1702347306.323179",
"username": "安否確認報告",
"bot_id": "BXXXXXXXXXX",
"app_id": "AXXXXXXXXXX",
"blocks": [
{
"type": "rich_text",
"block_id": "AAAAA",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "安否確認入力",
"style": {
"bold": true
}
},
{
"type": "text",
"text": " submission from "
},
{
"type": "user",
"user_id": "U012MS9TLR0"
},
{
"type": "text",
"text": "\n\n"
},
{
"type": "text",
"text": "被災しましたか?",
"style": {
"bold": true
}
},
{
"type": "text",
"text": "\n"
},
{
"type": "text",
"text": "被災していない"
},
{
"type": "text",
"text": "\n\n"
},
{
"type": "text",
"text": "業務は可能ですか?",
"style": {
"bold": true
}
},
{
"type": "text",
"text": "\n"
},
{
"type": "text",
"text": "業務できる"
},
{
"type": "text",
"text": "\n\n"
},
{
"type": "text",
"text": "コメント ※「出張していて被災した」「自身は被災していないが家族が被災している」など、補足情報があればコメント欄に記載をお願いします",
"style": {
"bold": true
}
},
{
"type": "text",
"text": "\n"
},
{
"type": "text",
"text": "これは動作確認のテストです"
},
{
"type": "text",
"text": "\n\n"
}
]
}
]
}
]
}
]
}
上記の通りでかなり大幅に取得フォーマットが変わっています。
※なお、ワークフローを利用しない通常のメッセージに関してはレガシーフォーマットと同様のフォーマットです。
※今回取得したのはチャンネル内にワークフローから投稿されたもので、DM等はまだ調査していません。
Slack ワークフローのメッセージを取得するような処理がある場合は、取得結果のフォーマットを確認しておいた方がいいと思います。
今回はメッセージに対してのフォーマットですが、他にも新ワークフローに変わったことで変更点がある可能性はあります。
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。